// 查询条件
const cdns = [
  {
    // 标签
    label: '菜单名称',
    // 字段
    field: 'name',
    // 组件类型
    type: 'input',
    // 占位符
    place: '根据菜单名称进行筛选',
  },
  {
    // 标签
    label: '菜单类型',
    // 字段
    field: 'type',
    // 组件类型
    type: 'select',
    //下拉数据
    options: [{ label: '菜单', value: 1 }, { label: '按钮', value: 2 }, { label: '隐藏菜单', value: 3 }],
    // 占位符
    place: '根据菜单类型进行筛选',
  },
  {
    // 标签
    label: '菜单模式',
    // 字段
    field: 'mode',
    // 组件类型
    type: 'select',
    //下拉数据
    options: [{ label: '组件', value: 1 }, { label: '内链', value: 2 }, { label: '外链', value: 3 }],
    // 占位符
    place: '根据菜单模式进行筛选',
  },
  {
    // 标签
    label: '创建日期',
    // 字段
    field: 'create_time',
    // 组件类型
    type: 'DatePicker',
    // 占位符
    place: '根据创建日期进行筛选',
  },
  {
    // 标签
    label: '控制器',
    // 字段
    field: 'controller',
    // 组件类型
    type: 'input',
    // 占位符
    place: '根据控制器真实地址进行筛选',
  },
  {
    // 标签
    label: '必须登录',
    // 字段
    field: 'is_login',
    // 组件类型
    type: 'select',
    //下拉数据
    options: [{ label: '是', value: 1 }, { label: '否', value: 0 }],
    // 占位符
    place: '根据是否需要登录进行筛选',
  },
  {
    // 标签
    label: '状态',
    // 字段
    field: 'is_disable',
    // 组件类型
    type: 'select',
    //下拉数据
    options: [{ label: '禁用', value: 1 }, { label: '启用', value: 0 }],
    // 占位符
    place: '根据状态进行筛选',
  },
  {
    // 标签
    label: '请求方法',
    // 字段
    field: 'methods',
    // 组件类型
    type: 'select',
    //下拉数据
    options: [
      { label: 'Get', value: 'get' },
      { label: 'Post', value: 'post' },
      { label: 'Put', value: 'put' },
      { label: 'Delete', value: 'delete' },
      { label: 'Options', value: 'options' },
      { label: 'Head', value: 'head' },
      { label: 'Trace', value: 'trace' },
      { label: 'Connect', value: 'connect' }
    ],
    // 占位符
    place: '根据请求方法进行筛选',
  }
];
// 列表列配置
const columns = [
  {
    label: '菜单名称 ',
    field: 'name',
    hide: false,
    width: 180
  },
  {
    label: '菜单类型',
    field: 'type',
    hide: false,
  },
  {
    label: '菜单模式',
    field: 'mode',
    hide: false,
  },
  {
    label: '菜单图标',
    field: 'icon',
    hide: false,
  },
  {
    label: '控制器',
    field: 'controller',
    hide: true,
  },
  {
    label: '后端路由',
    field: 'after_route',
    hide: true,
  },
  {
    label: '前端路由',
    field: 'front_route',
    hide: true,
  },
  {
    label: '请求方法',
    field: 'methods',
    hide: false,
  },
  {
    label: '基础菜单',
    field: 'is_basics',
    hide: false,
  },
  {
    label: '需要登录',
    field: 'is_login',
    hide: false,
  },
  {
    label: '状态',
    field: 'is_disable',
    hide: false,
  },
  {
    label: '排序',
    field: 'sort',
    width: 80,
    hide: false,
  },
  {
    label: '创建时间',
    field: 'create_time',
    width: 180,
    hide: false,
  },
  {
    label: '修改时间',
    field: 'update_time',
    width: 180,
    hide: false,
  }
];
// api地址
const actions = {
  list: {
    api: 'system/menu/index',
    permission: ['system.Menu/index']
  },
  dele: {
    api: 'system/menu/del',
    permission: ['system.Menu/del'],
    title: '删除菜单'
  },
  edit: {
    api: 'system/menu/edit',
    permission: ['system.Menu/edit'],
    title: '编辑菜单'
  },
  add: {
    api: 'system/menu/add',
    permission: ['system.Menu/add'],
    title: '创建菜单'
  }
};
//Dialog配置
const dialogConfig = {
  //dialog所有属性均可配置
  width: '35.5vw',
  'mask-closable': false,
  draggable: true,
  titleIcon: 'icon-file',
  formConfig: {
    itemLine: 2,
    formItem: [
      {
        field: 'pid',
        type: 'treeselect',
        rule: [],
        label: '父级菜单',
        options: [],
        api: '/admin/system/menu/index'
      },
      { field: 'name', type: 'input', rule: [{ required: true, message: '必填项,不能为空.' }], label: '菜单名称' },
      { field: 'controller', type: 'input', rule: [], label: '控制器' },
      { field: 'icon', type: 'icon-select', rule: [], label: '菜单图标' },
      { field: 'after_route', type: 'input', rule: [], label: '后端路由' },
      { field: 'front_route', type: 'input', rule: [], label: '前端路由' },
      {
        field: 'methods',
        type: 'select',
        rule: [],
        label: '请求方法',
        options: [
          { label: 'Get', value: 'get' },
          { label: 'Post', value: 'post' },
          { label: 'Put', value: 'put' },
          { label: 'Delete', value: 'delete' },
          { label: 'Options', value: 'options' },
          { label: 'Head', value: 'head' },
          { label: 'Trace', value: 'trace' },
          { label: 'Connect', value: 'connect' }
        ]
      },
      { field: 'sort', type: 'input', rule: [], label: '排序', defaultVal: '100' },
      {
        field: 'type',
        type: 'radio',
        rule: [],
        label: '菜单类型',
        options: [{ label: '菜单', value: 1 }, { label: '按钮', value: 2 }, { label: '隐藏菜单', value: 3 }],
        defaultVal: 1
      },
      {
        field: 'mode',
        type: 'radio',
        rule: [],
        label: '菜单模式',
        options: [{ label: '组件', value: 1 }, { label: '内链', value: 2 }, { label: '外链', value: 3 }],
        defaultVal: 1
      },
      { field: 'is_basics', type: 'switch', rule: [], label: '基础菜单', defaultVal: 0 },
      { field: 'links', type: 'input', rule: [], label: 'URL链接' },
      { field: 'is_login', type: 'switch', rule: [], label: '必须登录', defaultVal: 1 },
      { field: 'is_disable', type: 'switch', rule: [], label: '禁用', defaultVal: 0 }
    ]
  }
};

export function useColumns() {
  return columns;
}
export function useConditions() {
  return cdns;
}
export function useActions() {
  return actions;
}
export function useDialogConfig() {
  return dialogConfig;
}
